/**
 * Created by Administrator on 2017/2/21.
 */
var  mongo = require('./db');
//创建发表文章的对象
function Post(name,post,pictureurl){
    this.name = name;
    this.post = post;
    this.pictureurl = pictureurl;
}
module.exports = Post;
//存储一篇文章的信息
Post.prototype.save = function(callback){
   var date = new  Date();
    var time = {
        date:date,
        year:date.getFullYear(),
        month:date.getFullYear()+'-'+(date.getMonth()+1),
        day:date.getFullYear()+'-'+(date.getMonth()+1)+date.getDate(),
        minute:date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+'-'
        +date.getHours()+':'+(date.getMinutes()<10?'0'+date.getMinutes():date.getMinutes())
        +':'+(date.getSeconds()<10?'0'+ date.getSeconds():date.getSeconds()),
        }
    var post = {
        name:this.name,
        time:time.minute,
        post:this.post,
        pictureurl:this.pictureurl
    }

//    打开数据库将发表的内容存入数据库
    mongo.open(function (err,db) {
        if(err){
            return callback(err);
        }
        db.collection('posts',function (err,collection) {
            if(err){
                mongo.close();
                return callback(err);
            }
            collection.insert(post,{safe:true},function (err) {
                mongo.close();
                if(err){
                    return callback(err);
                }
                callback(null);
            })
        })
    })
};

//读取五篇数据
Post.getFive=function(name,page,callback){
     mongo.open(function(err,db){
         if(err){
             return callback(err);
         }
         db.collection('posts',function(err,collection){
             if(err){
                 mongo.close();
                 return callback(err);
             }
             //定义一个空数组
             var query = {};
             if(name){
                 query.name = name;
             }
             //计算文章的总个数
             collection.count(query,function(err,total){
                 collection.find(query,{
                     skip:(page - 1 ) *5 ,
                     limit:5
                 }).sort({
                         time:-1
                 }).toArray(function(err,docs){
                     mongo.close();
                     if(err){
                         return callback(err);
                     }
                     callback(null,docs,total);
                 })
             })
         })
     })
};

//删除一篇日记
Post.remove=function (name,time,callback) {
    mongo.open(function (err,db) {
        if(err){
            return callback(err);
        }
        db.collection('posts',function (err,collection) {
            if(err){
                mongo.close();
                return callback(err);
            }
            collection.remove({
                "name":name,
                "time":time
            },function (err) {
                mongo.close();
                if(err){
                    return callback(err);
                }
                callback(null);
            })
        })
    })
};

//编辑日记
Post.edit=function (name,time,callback) {
    mongo.open(function (err,db) {
        if (err){
            return callback(err);
        }
        db.collection('posts',function (err,collection) {
            if (err){
                mongo.close();
                return callback(err);
            }
            collection.findOne({
                "name":name,
                "time":time
            },function (err,doc) {
                mongo.close();
                if (err){
                    return callback(err);
                }
                return  callback(null,doc);
            })
        })
    })
}

//更新日记
Post.update=function (name,time,post,callback) {
    mongo.open(function (err,db) {
        if(err){
            return callback(err);
        }
        db.collection('posts',function (err,collection) {
            if(err){
                mongo.close();
                return callback(err);
            }
            collection.update({
                "name":name,
                "time":time
            },{$set:{"post":post}},function (err) {
                console.log(post);
                mongo.close();
                if(err){
                    return callback(err);
                }
                callback(null);
            })
        })
    })
}

//上传头像
Post.updatePhoto = function (name, pictureurl, callback) {
    mongo.open(function (err, db) {
        if (err) {
            return callback(err);
        }
        db.collection('posts', function (err, collection) {
            if (err) {
                mongo.close();
                return callback(err);
            }
            collection.update({
                "name": name
            }, {$set: {pictureurl: pictureurl}}, {multi: true}, function (err) {
                mongo.close();
                if (err) {
                    return callback(err);
                }
                callback(null);
            })
        })
    })
};


